Group communication protocol designed for multicast communication may be used to communicate messages between endpoints forming a group. Communication endpoints can be processes or objects, or any entity that can send and receive messages to/from a group.
However, messages from different senders are conventionally processed in a First In First Out (FIFO) order in a single queue for incoming messages by one thread. The messages are processed sequentially in the order they are received. A bottleneck may thus be formed since every message has to wait for its turn to be processed accordingly.
Further, a situation may arise where a sender sends messages at a rate much faster than a receiver receiving and processing messages. The sender may deluge a receiver with messages. In this situation, the receiver must buffer the messages and may run out of memory.